package org.java.item.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import org.java.common.vo.ResultVo;
import org.java.item.entity.Sku;

import java.io.IOException;
import java.util.List;

/**
 * @author WHQ
 * @version 1.0
 * @date 2022-3-4 0004 下午 3:03
 */
public interface SkuService {
    /**
     * 得到所有商品的方法
     * @param page
     * @param limit
     * @return
     */
    ResultVo<Sku> getList(int page, int limit);

    /**
     * 根据id删除商品
     * @param skuId
     */
    void del(Long skuId);

    /**
     * 修改商品详情的方法
     * @param sku
     */
    void update(Sku sku);

    /**
     * 添加商品的方法
     * @param sku
     */
    void saveSku(Sku sku);


    ResultVo<Sku> getListAll() throws IOException;

    /**
     * 提供给商品详情模块使用的，根据id查询商品的方法
     * @param id
     * @return
     */
    Sku findById(Long id);

    /**
     * 减少库存的方法
     * @param skuId
     */
    void cutInventory(Long skuId,Integer num);

    /**
     * 订单超时，对库存进行回滚
     * @param skuId
     * @param inventory
     */
    void rollbackInventory(Long skuId,Long inventory);
}
